#pragma once
#pragma warning(disable:4996)
// Frequently used libraries etc here.
#include "Log.h"
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/thread.hpp>
#include <boost/timer.hpp>
#include <boost/enable_shared_from_this.hpp>

#include <vector>
#include <map>
#include <set>
#include <string>
#include <queue>
#include <algorithm>
#include <fstream>
#include <io.h>

#include "MathPrereq.h"
#include "MemTrack.h"

//#if (TARGET_DX9 || TARGET_DX10 || TARGET_DX11)
#define DIRECTINPUT_VERSION 0x0800
#define NOMINMAX
#ifdef _DEBUG
	#define D3D_DEBUG_INFO
#endif

#include <windows.h>
#include <dinput.h>
#include <d3d9.h>
#include <d3dx9.h>
//#endif
//#ifdef TARGET_DX11
#include <d3d11.h>
#include <d3dx11.h>
//#endif
//#if (TARGET_DX10 || TARGET_DX11)
#include <d3d10.h>
#include <d3dx10.h>
#include <dxgi.h>
//#endif

#include "LuaPlus.h"
#include "ImageLoader.h"
#include "StringConverter.h"
#include "GeneralSettings.h"

#include "ThreadFactory.h"
#include "InputFactory.h"
#include "SoundFactory.h"
#include "PhysicsFactory.h"
#include "GraphicsFactory.h"
#include "EngineFactory.h"